x11: Don't make random windows native
authorBenjamin Otte <otte@redhat.com>
Mon, 5 Dec 2016 22:40:16 +0000 (23:40 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 9 Dec 2016 17:35:51 +0000 (18:35 +0100)
Instead, complain if somebody calls gdk_x11_window_get_xid() on a
non-native window.

We cannot make random windows native anymore because there's no GSK
renderer associated with them, so we cannot draw them.

gdk/x11/gdkwindow-x11.c

index c339a9d891eed6925ff987c8ec921bc7e1e52737..b2eb6eef2fb6d9f5e7b02d55e255c6141c042238 100644 (file)
@@ -5150,19 +5150,8 @@ gdk_x11_get_server_time (GdkWindow *window)
 XID
 gdk_x11_window_get_xid (GdkWindow *window)
 {
-  /* Try to ensure the window has a native window */
-  if (!_gdk_window_has_impl (window))
-    {
-      gdk_window_ensure_native (window);
-
-      /* We sync here to ensure the window is created in the Xserver when
-       * this function returns. This is required because the returned XID
-       * for this window must be valid immediately, even with another
-       * connection to the Xserver */
-      gdk_display_sync (gdk_window_get_display (window));
-    }
-  
-  if (!GDK_WINDOW_IS_X11 (window))
+  if (!GDK_WINDOW_IS_X11 (window) ||
+      !_gdk_window_has_impl (window))
     {
       g_warning (G_STRLOC " drawable is not a native X11 window");
       return None;
@@ -5200,11 +5189,8 @@ void
 gdk_x11_window_set_frame_sync_enabled (GdkWindow *window,
                                        gboolean   frame_sync_enabled)
 {
-  /* Try to ensure the window has a native window */
-  if (!_gdk_window_has_impl (window))
-    gdk_window_ensure_native (window);
-
-  if (!GDK_WINDOW_IS_X11 (window))
+  if (!GDK_WINDOW_IS_X11 (window) ||
+      !_gdk_window_has_impl (window))
     {
       g_warning (G_STRLOC " drawable is not a native X11 window");
       return;